Analysis-by-synthesis linear predictive speech coders usually have a long-term predictor or adaptive code book followed by one or several fixed code books. Such speech coders are for example described in [1]. The total excitation vector in such speech coders may be described as a linear combination of code book vectors V.sub.i, such that each code book vector V.sub.i is multiplied by a corresponding gain g.sub.i. The code books are searched sequentially. Normally the excitation from the first code book is subtracted from the target signal (speech signal) before the next code book is searched. Another method is the orthogonal search, where all the vectors in later code books are orthogonalized by the selected code book vectors. Thus, the code books are made independent and can all be searched towards the same target signal.
Search methods and gain quantization for a generalized CELP coder having an arbitrary number of code books are discussed in [2].
The gains of the code books are normally quantized separately, but can also be vector quantized together.
In the coder described in [3], two fixed code books are used together with an adaptive code book. The fixed code books are searched orthogonalized. The fixed code book gains are vector quantized together with the adaptive code book gain, after transformation to a suitable domain. The best quantizer index is found by testing all possibilities in a new analysis-by-synthesis loop. A similar quantization method is used in the ACELP coder [4], but in this case the standard code book search method is used.
A method to calculate the quantization boundaries adaptively, using the selected LTP vector and, for the second code book, the selected vector from the first code book, is described in [5, 6].
In [2] a method is suggested, according to which the LTP code book gains are quantized relative to normalized code book vectors. The adaptive code book gain is quantized relative to the frame energy. The ratios g.sub.2 /g.sub.1, g.sub.3 /g.sub.2, . . . are quantized in non-uniform quantizers. To use vector quantization of the gains, the gains must be quantized after the excitation vectors have been selected. This means that the exact gain of the first searched code books are not known at the time of the later code book searches. If the traditional search method is used, the correct target signal cannot be calculated for the later code books, and the later searches are therefore not optimal.
If the orthogonal search method is used, the code book searches are independent of previous code book gains. The gains are thus quantized after the code book searches, and vector quantization may be used. However, the orthogonalization of the code books is often very complex, and it is usually not feasible, unless as in [3], the code books are specially designed to make the orthogonalization efficient. When vector quantization is used, the best gains are normally selected in a new analysis-by-synthesis loop. Since the gains are scalar quantities, they can be moved outside the filtering process, which simplifies the computations as compared to the analysis-by-synthesis loops in the code book searches, but the method is still much more complex than independent quantization. Another drawback is that the vector index is very vulnerable to channel errors, since an error in one bit in the index gives a completely different set of gains. In this respect independent quantization is a better choice.
However, for this method more bits must be used to achieve the same performance as other quantization methods.
The method with adapted quantization limits described in [5, 6] involves complex computations and is not feasible in a low complexity system as mobile telephony. Also, since the decoding of the last code book gain is dependent on correct transmission of all previous gains and vectors, the method is expected to be very sensitive to channel errors.
Quantization of gain ratios, as described in [2], is robust to channel errors and not very complex. However, the methods requires the training of a non uniform quantizer, which might make the coder less robust to other signals not used in the training. The method is also very inflexible.